/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import pojo.Loaitinhtrang;
import pojo.Tinhtrang;
import util.HibernateUtil;

/**
 *
 * @author kydrenw
 */
public class TinhtrangDAO {
    /**
     * Lấy thông tin tình trạng dựa theo mã.
     * @param ma: Mã của tình trạng muốn lấy thông tin.
     * @return Đối tượng chứa thông tin tình trạng cần tìm.
     */
    public static Tinhtrang layThongTin(int ma) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Tinhtrang sp = (Tinhtrang) session.get(Tinhtrang.class, ma);
        
        return sp;
    }
    
    /**
     * Lấy danh sách các tình trạng hiện có.
     * @return : Danh sách các tình trạng tìm thấy
     */
    public static List<Tinhtrang> layDanhSach() {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        String hql = "FROM Tinhtrang";
        Query query = session.createQuery(hql);
        List<Tinhtrang> ds = query.list();
        
        return ds;
    }
    
    /**
     * Lấy danh sách tình trạng theo loại tình trạng.
     * @param maloai :Mã của loại trình trạng cần lấy.
     * @return : Danh sách các tình trạng tìm thấy, nếu không tìm thấy, trả về null.
     */
    public static List<Tinhtrang> layDanhSach(int maloai) {
        Loaitinhtrang loaiTinhTrang = LoaitinhtrangDAO.layThongTin(maloai);
        Object[] dsTinhTrang = loaiTinhTrang.getTinhtrangs().toArray();
        ArrayList<Tinhtrang> ds =new ArrayList<Tinhtrang>();
        for(int i=0; i< dsTinhTrang.length; i++)
        {
            Tinhtrang tt = (Tinhtrang) dsTinhTrang[i];
            ds.add(tt);
        }
        return ds;
    }      
}
